//#include <iostream>
//#include <cstring>
//#include <algorithm>
//#include <vector>
//#include <cmath>
//#include <unordered_map>
//#include <unordered_set>
//#include <map>
//#include <set>
//#include <queue>
//#include <stack>
//#include <deque>
//#include <functional>
//#include <climits>
//
//#define quickio ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//#define endl "\n"
//
//using namespace std;
//typedef long long ll;
//
//const int N = 5e5 + 5;
//int a[N];
//int b[N];
//
//int main()
//{
//	quickio;
//	int n, x;
//	cin >> n >> x;
//	for (int i = 1; i <= x; i++)
//		b[i] = i;
//	int count = x;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> a[i];
//		for (int j = 1; j <= a[i]; j++)
//		{
//			if (b[j] != -1)
//			{
//				b[j] = -1;
//				count--;
//			}
//			else
//			{
//				for (int k = 2; k * j <= x; k++)
//				{
//					if (b[j * k] != -1 && b[j * k] != 1)
//					{
//						b[j * k] /= j;
//						if (b[j * k] == 1)
//						{
//							b[j * k] = -1;
//							count--;
//						}
//						break;
//					}
//				}
//			}
//
//			if (count == 0)
//			{
//				break;
//			}
//		}
//		if (count == 0)
//		{
//			break;
//		}
//	}
//	if (count == 0)
//	{
//		cout << "Yes" << endl;
//	}
//	else
//		cout << "No" << endl;
//	return 0;
//}


//
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//#include <vector>
//#include <cmath>
//#include <unordered_map>
//#include <unordered_set>
//#include <map>
//#include <set>
//#include <queue>
//#include <stack>
//#include <deque>
//#include <functional>
//#include <climits>
//
//#define quickio ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//#define endl "\n"
//
//using namespace std;
//typedef long long ll;
//
//const int N = 5e5 + 5;
//int a[N];
//int b[N];
//
//int main()
//{
//	quickio;
//	int n, x;
//	cin >> n >> x;
//	for (int i = 1; i <= x; i++)
//		b[i] = i;
//	int count = x;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> a[i];
//		for (int j = 1; j <= a[i]; j++)
//		{
//			if (b[j] != -1)
//			{
//				b[j] = -1;
//				count--;
//			}
//			else
//			{
//				for (int k = 2; k * j <= x; k++)
//				{
//					if (b[j * k] != -1 && b[j * k] != 1)
//					{
//						b[j * k] /= j;
//						if (b[j * k] == 1)
//						{
//							b[j * k] = -1;
//							count--;
//						}
//						break;
//					}
//				}
//			}
//
//			if (count == 0)
//			{
//				break;
//			}
//		}
//		if (count == 0)
//		{
//			break;
//		}
//	}
//	if (count == 0)
//	{
//		cout << "Yes" << endl;
//	}
//	else
//		cout << "No" << endl;
//	return 0;
//}